There are various known techniques of image and video processing, for example segmentation allows objects in an image to be separated following a user input and/or automatically. For example, this allows a foreground object in an image to be identified and isolated from the background, perhaps such that it can be placed against an alternative background. Other techniques use similar principles for performing denoising, panoramic stitching, or for adding effects like cartooning, smoothing, and the like. Many image processing techniques utilize computationally expensive energy minimization techniques. These techniques assume certain characteristics of the image or video (for example, that neighboring pixels of an object should be similar).
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known image and video processing techniques.